import * as dataDictionary from "@shared/constant/dataDictionary";

export * as list from './list';
export * as detail from './detail';
export * as create from './create';
export * as update from './update';

/**
 * 产品信息接口
 * @description 定义产品的基本信息结构，包括产品编号、名称、分类、规格、价格、库存等
 */
export interface IProduct {
    /** 产品ID - 唯一标识符 */
    id: string;
    
    /** 产品编号 - 产品的唯一编码，用于业务识别 */
    code: string;
    
    /** 产品名称 - 产品的显示名称 */
    name: string;
    
    /** 产品分类 - 产品的类别分组，如：护肤品、化妆品、保健品等 */
    category?: string;
    
    /** 产品品牌 - 产品的品牌名称 */
    brand?: string;
    
    /** 产品规格 - 产品的规格信息，如：50ml、100g等 */
    specification?: string;
    
    /** 产品单位 - 产品的计量单位，如：瓶、盒、支等 */
    unit: string;
    
    /** 产品描述 - 产品的详细说明信息 */
    description?: string;
    
    /** 产品图片URL - 产品的图片地址 */
    imageUrl?: string;
    
    /** 零售价格 - 产品的零售价格，单位为元 */
    retailPrice: number;
    
    /** 会员价格 - 会员购买价格，单位为元 */
    memberPrice?: number;
    
    /** 成本价格 - 产品的成本价格，单位为元 */
    costPrice?: number;
    
    /** 当前库存数量 - 产品的当前库存量 */
    stockQuantity: number;
    
    /** 库存预警数量 - 库存预警的阈值 */
    warningQuantity: number;
    
    /** 产品状态 - 产品的状态，如：正常、下架等 */
    status: ProductStatus;
    
    /** 是否推荐 - 是否为推荐产品 */
    isRecommended: boolean;
    
    /** 产品标签 - 产品的标签信息 */
    tags?: string;
    
    /** 赠送积分 - 产品的赠送积分 */
    giftPoints?: number;
    
    /** 创建时间 */
    createdAt: Date;
    
    /** 更新时间 */
    updatedAt: Date;
} 

/**
 * 产品状态
 */
export enum ProductStatus {
    ACTIVE = 'active',
    INACTIVE = 'inactive',
    DRAFT = 'draft'
}

/**
 * 产品状态
 */
export const ProductStatusMap = {
    [ProductStatus.ACTIVE]: '上架',
    [ProductStatus.INACTIVE]: '下架',
    [ProductStatus.DRAFT]: '草稿'
}
